package com.njxxted.activiti.modules.process.extend.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 描述：历史流程节点（只查询任务节点） 实体类
 * <p>
 * 作者：Ostrich Hu
 * 时间：2019/8/8 14:16 星期四
 */
@Data
public class HistoryTaskInstanceEntity implements Serializable {
    private static final long serialVersionUID = 6481062164983558138L;

    //扩展历史表的id
    private String extendHisId;
    //流程实例id
    private String instanceId;
    //流程定义id
    private String definitionId;
    //流程定义key
    private String key;
    //流程定义名称
    private String definitionName;
    //流程定义版本
    private String version;
    //业务id
    private String businessId;
    //流程部署id
    private String deploymentId;
    //节点创建时间
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date startTime;
    //节点结束时间
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date endTime;
    //节点耗时
    private Long durationInMillis;
    //节点任务主键id
    private String taskId;
    //节点Id
    private String nodeId;
    //节点名称
    private String nodeName;
    //节点类型
    private String nodeType;
    //操作人
    private String operateUserId;
    //操作类型
    private String operateType;
    //操作原因
    private String operateComment;
    //流程实例执行id
    private String executionId;
    //流程节点处理人
    private String assignee;
    //pc表单key
    private String pcFormkey;
    //移动表单key
    private String mobileFormkey;
    //打印模板
    private String printFormkey;
    //表单数据
    private Map<String, Object> formVars;
    //节点处理用户信息
    private List<Map<String, Object>> users;
    //节点候选用户信息
    private List<Map<String, String>> candidateUsers;
    //是否超时(true:是，false：否)
    private boolean isOverTime;
    //
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date deadline;

    //审批时上传的附件信息
    private List<Map<String, Object>> attachments;

    public HistoryTaskInstanceEntity() {
    }

}
